home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 1.iso
/
ARGONET
/
PD
/
SOUND
/
APTracker_2.ZIP
/
!APTracker
/
Version2
< prev
Wrap
Text File
|
1993-11-05
|
48KB
|
798 lines
AP Tracker Version 2
====================
This help text details the new features present in version 2 of "AP
Tracker". For instructions on how to use the program from scratch, you
are advised to first read the text file "Version1", which, though
referring to Version 1 of the software, is also applicable to this later
release due to the upward compatibility. Those already familiar with the
software should refer only to this text in order to avoid having to read
about features with which they are already familiar.
Module Additions
As with version 1, AP Tracker version 2 uses a public domain music
playing module for most of the sound generating bits such as playing
tunes/patterns. However, the module used by AP Tracker version 2 has
itself been updated, and the extra features have thus been carried
through to "AP Tracker". Significantly, "E" (set stereo) commands with
out of range parameters no longer force the computer to crash, which
will certainly prove to be a relief to anyone who has had it happen to
them. Also, command "S" (set speed) has had its parameter range
extended, and now can take variables in the range 0-&1F (31), allowing
slower playing of tunes and greater compatibility with music converted
from the Amiga which uses this facility. Note that, although the module
has been improved in the time between the release of version 1 and
version 2 of AP Tracker, it still retains the same version number (4.09
[development]). You may therefore encounter problems if you have the
older version 4.09 of the module installed (as the computer will not
recognise the newer version as such). To solve this, clear the module
area before loading version 2, load the new version explicitly by double
clicking on the "PlayMod" file within the application directory, or
simply replace all of your old copies of version 4.09 with the newer
module (though you will still have to clear the old version from memory
in this last case).
Program Additions
One of the first things you may notice if you have used Version 1 of the
program is that the full help text is no longer built in to the program
and must be read from outside of it. While an on-line help was
undoubtedly a very nice feature, it was also rather a burden on memory,
as it all had to be in the computer's memory all the time the program
was being used - even if a user was experienced enough never to need to
refer to it. As a measure of just how much memory this took up, by
removing this feature in version 2 (and compressing the !RunImage file
slightly), I have been able to add all of the new features detailed
below while keeping the Wimp slot the same (224 kilobytes). The full
help has therefore now been replaced by just one screen of text
detailing the principal keyboard controls.
Virtually every area of the program has been updated in some way, and
the additions to each part are listed below. As well as this, one
completely new section, the Sample Editor, has been introduced, and the
explanation for this follows those for the new features of the other
sections.
Desktop Operations
==================
This is the part of the program which has changed least, as I have
really just honed some existing routines rather than introduce any new
ones. You may notice that there is now an extra option on the "Save"
submenu. This is for saving details of the synthetic sound currently
being edited (see later). While on the subject of filing, I have also
removed the "Convert from Sound Tracker?" and "Convert from Octalyzer?"
messages, and if you had grown as irritated of them as I had, you will
probably appreciate this. To check on the initial format of a tune, you
should now check the tune author field (or watch for the appearance of
the hourglass when loading which signifies that some form of conversion
is taking place).
Coconizer conversion has also been enhanced in several ways. Firstly, if
you load a song (just pattern data, not samples) as opposed to a track
file, the sample names are copied into the slots, which should aid later
reconstruction. Secondly, some provision is made for the 8 octave range
of Coconizer compared to the 3 octave range for Tracker. AP Tracker 2
does this by allocating vacant sample slots to higher or lower versions
of existing instruments. For example, all notes played above octave 2
(Coconizer) on instrument 5 may be translated to notes played on octaves
1 and 2 (Tracker) on instrument B, and the sample name for B will be
changed to reflect this. It is left to the user to create the higher or
lower versions of the instruments, but this can be accomplished with
ease using the Resample feature of the sample editor. The parameters for
the resample are also placed in the sample name, and so this should be
relatively easy to do. The resample function is a fairly complicated
feature, so if you do get stuck trying to convert a tune, I can convert
it for you if you send me a copy (my address is at the end of this
text).
Another very slight alteration which has taken place is that when you
create a tune using the "Create" option from the main menu, the stored
pattern length (on the "Settings" window) is taken into account when
creating the pattern (and, as before, for each subsequent pattern
created). I have also (hopefully) cured the problem in Version 1 where
if you altered the tune or author name for a piece of music, they did
not always register properly. A small problem whereby dragging save
boxes did not work properly in screen modes such as 16 or 24 has also
now been fixed.
The only other real additions are to be found on the "Amend Track"
window. Whereas before there was a single "Insert Voice" option, there
are now two, "Insert After" and "Insert Before", allowing more control
of (and less confusion over) exactly where a newly created voice will be
inserted. There is also a "Tidy Sample List" option. This has the effect
of shuffling all of the samples upwards, eliminating any gaps which
might appear in the samples list. The "Preserve name order" setting
will, if set, keep all of the sample names the same. This is most useful
when the "sample names" are not actually sample names at all, but
contain some form of text message. Without this option set, the sample
slots which do not contain instruments but do contain text may be moved
around. Conversely, if you wish to use this feature on a tune you have
written which has some form of text message, make sure that the text you
want to keep "belongs" to a valid sample (even if you have to load one
in temporarily while tidying the list).
I have also introduced a link between playing tunes in the desktop and
playing them while in "Play Tune" mode in the main editing section. With
this, if you are playing a tune in the desktop and then enter the main
editing section (Adjust on the icon bar icon), you are automatically
taken into "Play Tune" mode, with the tune at the same position as you
were at outside the desktop. Note that this does not work when a tune
has just been loaded, and you go to the main editing screen for the
first time, as in this case the program needs to sort out internal
pointers and data tables.
The Main Editing Screen
=======================
It is in this section that most of the additions to the program will
become apparent. There are some new features which are mode-specific,
and a few which are global, ie. can occur whatever mode ("Test Samples",
"Play Pattern" etc.) the program is in. These latter will be dealt with
first in the text below. Some of the new features (and many of the old
ones) are accessed using the red function keys, and you are advised to
print out a copy of the enclosed Draw file keystrip for reference.
I have added an extra state for the voices. Previously, clicking with
the mouse over a "Voice X" box would toggle it between "On" and "Mute".
Now, this feature is accomplished by clicking with Select over the
relevant box. Clicking with Adjust will toggle a voice between "On" and
"Quiet". While at first sight (or hearing) this latter state may seem to
be identical to "Mute", there are in fact several differences. Whereas
"Mute" effectively disables a voice so that any notes currently being
played on it are stopped, and no further notes are played on it, "Quiet"
keeps playing the notes, but at volume 0 (silent). The benefit of
"Quiet" is that when you change the voice back to "On", the volume is
returned to 255 (normal). This means that existing notes (particularly
those played on repeating instruments) will resume playing. This is in
contrast to "Mute", where repeating notes were cancelled, and after
setting the voice back to "On" you would have to wait until another note
was played on that channel to get any sound out of it. However, I
appreciate that this can be useful in some circumstances; hence I have
implemented both methods. One advantage of using "Mute" is that, having
less tune data to worry about, the operation of the machine will speed
up, particularly noticeable on Arm 2 machines (like mine!).
Above the instruments window you should see four digits (initially
showing "00:00"). This is a timer feature, and is controlled by using
the function keys F5-F8 in conjunction with the Shift key. At its
simplest, you can start the timer with Shift-F5, and stop it again with
Shift-F6 to time between two events. It can also be reset with Shift-F7.
However, by default the timer uses another mode of operation. In this
mode the timer will start automatically when you next click on "Play
Tune", and stop automatically when you leave this mode. It will also
stop when you pause the tune (middle mouse button over the position
counter window), and start again when the music resumes. This provides
more accurate timing while still making the timer very versatile. If you
press Shift-F8, the timer digits should change to a darker shade of
green. Press Shift-F8 again to go back to the previous mode of
operation. Most of the timer functions can also be performed using the
mouse. Clicking with Select over the timer will start or stop the clock
(depending on its current status), and Adjust will reset it. One further
feature here is that by clicking with the Menu button over the digits,
the display will be toggled between minutes:seconds and
seconds:hundredths. The latter is useful when writing programs which
need precise synchronization with music, though the former will be
adequate for most uses.
There is also a small addition to the "Stored Command" feature. The
Stored Command is shown to the right of "Voice 8", and holds a command
(0-Z) and a variable (&00-&FF). This is used when searching for commands
but the command to be searched for needs to be stored first, and so may
need to be typed in, stored, and the deleted again. However, by clicking
on the stored command with the menu and adjust buttons, the stored
command can be altered directly without needing to be typed in, which I
have found to be quite useful. The normal operation of this feature
(involving Tab, Enter, and clicking with Select, while in Edit Pattern
mode) is unaffected by this addition.
Another global feature here relates to the position numbers displayed to
the left and right of the pattern being displayed (or underneath if the
stave is being used). By clicking in either box, the base in which the
numbers are displayed will be toggled between decimal and hexadecimal.
The two sides are totally independent, and so they can both be decimal
(the default), one decimal and one hexadecimal, or both hexadecimal,
depending on the preferences of the user. One advantage of hexadecimal
is that as patterns are by default of length 64, the alignment of drum
beats and the like can (in some cases) be more accurately gauged.
Test Samples Mode
While in "Test Samples" mode, you can now scroll up and down the current
pattern, using the cursor keys, Shift, and Page Up/Down, as when in
"Edit Pattern" mode. Also while testing samples, "Alt" will stop a
repeating (or, indeed, non-repeating) sample playing.
Play Pattern Mode
While this mode is largely unaltered (after all, it can do little else
except play patterns!), a small (but very useful) facility has been
added, whereby you can alter the pattern being played without having to
keep changing to "Edit Pattern" mode. This is achieved by simply
clicking on the two arrows to the right of the pattern number, in the
same way as when changing the pattern in "Edit Pattern" mode. You will
also notice a "Speed:xx" label appearing in the box directly beneath
"Edit Sequence". This is to allow patterns to be easily played at speeds
other than the default (6). By clicking in this box with Select or
Adjust when a pattern is playing, the speed at which playback occurs can
be altered. Furthermore, this value is stored, and so if you have a tune
which needs to be played at Speed 4, altering the Play Pattern speed
when playing the first pattern means that subsequent patterns will be
played at Speed 4 by default. Also, every time a "Set Speed" command is
encountered when playing the pattern, its variable part (the new speed
value) will be recorded in order to keep the Play Pattern speed up to
date.
Edit Pattern Mode
I have fixed a minor bug in "Edit Pattern" concerning the "Record Mode"
and "J" (position jump) commands, and also put in a way to stop
repeating instruments repeating for ever when using the "Debug" mode.
This is accomplished by pressing "Caps Lock", and simply clears any
sound playing at the time. The "Repeat" option for the Debug mode has
also been updated, and is now more accurate. On my Arm 2, RISC OS 2,
A3000, a Repeat value of 6 corresponds directly to a playing speed of 6.
On other machines this may vary (it may need to be one more or one
less), but at least it is now consistent. Another function is one to
complement "Ctrl-F" (find next occurrence of stored command), and is
performed by pressing "Ctrl-M". This does the same as "Ctrl-F", but
matches both the stored command and variable, rather than just the
command part. A nicer way of entering both these parts has also been
provided on the "Used Screen" (see later).
The Monitor Screen
I have altered this screen slightly from Version 1, and the bars
displayed are now of a height which more accurately represents the
volume of the note being played (previously whenever a new note was
played they were just set to the maximum height). Also, faint
graduations have been added behind the bars.
The "Used" Screen
At first sight, this may seem to be identical to that in the first
version. However, if you now click on an individual item in either of
the three lists, further information is given. If you click on a note
(eg. "D-2"), you are told which instruments this note is played on (and
how many times). For an instrument, the reverse is shown - which notes
are played on it. If you click on a command such as "V" (set volume),
you are told how many times each variable (&00-&FF) is used in
conjunction with it. The screen for this does look pretty awful I know,
but I really wanted to get all of the information on a single screen for
sheer convenience. This "Detailed Command Usage" screen also has another
function. By clicking on an individual entry on screen with the Adjust
mouse button, both the command (shown in the top left) and the variable
(which you will have just clicked on) will be copied into the "Stored
Command" slot, which can be a great time saver.
The Sequence Editor
There are several additions to the sequence editor. Most important is
the time value shown. By clicking on "Calculate", the length of time the
currently loaded tune would take to play will be calculated, and this
value added to the value in the box. It therefore follows that to work
out the length of a tune, the value should be initially zero, and the
"Reset" box carries out this function. The benefit of having this as a
two-stage process is that it is easy to add up the lengths of more than
one tune without resorting to pen and paper additions. The timing should
in theory be precise, but in practice can prove in some cases to be up
to a few seconds out when compared to the time the tune actually takes
to play. If this happens it is probably due to anomalous behaviour on
the part of the playing module or processor.
It is perhaps worth saying a bit about the way in which the calculation
of the length of a tune works. It takes its cue from the current
sequence cursor position, and basically works through the tune starting
from this position until it reaches a position already visited. This
means that "J" commands do not cause the algorithm to get stuck in
infinite loops, and consequently means that if you have a music file
which contains several pieces of music (such as that used in
"Lemmings"), you can time each piece separately if you know the correct
starting positions.
The second major new feature in the sequence editor is that you may
select an area of a sequence and perform a (limited) range of operations
on it. To mark an area of the sequence, you must move (using the mouse
or arrow keys) to one end of the area, and hold down F1. You may then
set the other end of the block using the left and right arrow keys (with
Shift for faster movement), while still holding down F1. When the block
is as desired, release F1 and the block will be marked. The current
block is shown by the squares having a green border. Once an area has
been marked in this way, there are four boxes at the base of the screen
which take account of it. The first, "Clear" is the simplest - it simply
"unmarks" the area again when it is finished with, either to make the
screen look neater, or to stop you accidentally clicking on "Delete" or
something. The next two options, "Copy" and "Move", will relocate the
marked area to the current cursor position. The difference is that
"Move" will delete the original marked block, whereas "Copy" will leave
it unaltered. In both cases, the new copy of the block will be marked
when the operation has been completed. The fourth and final option is
"Delete", and will fairly obviously just remove the marked area from the
sequence. Note that you will be unable to do this if the whole sequence
is marked, and that you will unable to perform the Copy operation
detailed above if the resulting sequence would be more than 128 patterns
in length (the maximum imposed by the Tracker file format).
One very small change which has also been made to this screen is that
you can now delete the last pattern in a sequence, by clicking on
"Delete" with the cursor at the end of the sequence. This was not
possible with version 1 of the software.
The Sample Editor
=================
This is by far the most major addition to the program, and therefore
that worthy of most explanation. The purpose of this section is to allow
manipulation of the actual instruments used in a tune themselves rather
than just manipulation of the music patterns which use those
instruments. It is also very useful for setting Repeat markers, and in
trimming samples (and consequently the music files of which they are a
part) down by removing extraneous data.
I would also like to say something about sample lengths at this point.
The Tracker music format restricts samples to a length of 64K (65536
bytes). However, you may load samples longer than this (memory
permitting) into AP Tracker by dragging them to the samples window in
the desktop. They will not play correctly in the "Test Samples" mode or
the Sample Editor, but they may still be manipulated in the latter.
However, you can use the "Play Marked Area" feature in the Sample Editor
to play a part of the sample beyond the 64K marker, and this will play
properly as long as the area marked does not exceed 64K in length.
Another problem is that the sample length will not be displayed
correctly (as 99999 in the main editor, and slightly differently in the
desktop). Fades, echos, boost operations, and such like will all work
correctly on the sample (or a marked block of it), though as mentioned
above you will not be able to play it properly. However, you can mark a
block and use "Delete Marked/Unmarked" which may leave you with a sample
of a valid length. You can also use the "Resample" function (see below)
to reduce the sample to a more manageable length (though with a
corresponding loss in quality). With many of the sample editing
functions described below, if an operation would cause a sample to be
over 64K in length, an error will be displayed and you will be unable to
carry out that operation.
To access the sample editor, click on the "Instruments/Edit" box on the
main editing screen while in "Test Samples", "Edit Pattern" or "Play
Tune" mode. This should then invoke the sample editor screen, of which a
large window the width of the screen should take up about half. This
large window will show (as a waveform) the currently selected sample. If
the currently selected sample slot is empty, this window will be blank.
You should have no problems getting to grips with the sample editor if
you have used the rest of "AP Tracker", as the user interface is
virtually identical (do you think I'm going to bother designing another
one?). To select another sample slot (for instance if the current one is
empty), use the left and right arrows next to the "Sample:" box.
Clicking on these arrows with Select will move through the samples one
at a time. Clicking with Adjust however, will move to the next sample
slot which contains an instrument (ie. skipping the blank ones). Also,
clicking on the sample name will allow you to alter it, like in "Test
Samples" mode.
You can zoom in on the centre of the sample by altering the zoom value
just beneath the sample window. The purple bar directly beneath the
waveform is a scroll bar, and can be used to move through the sample
when a zoom of greater than 1 is used. To play a sample either click on
the on-screen keyboard or use the computer's keyboard (same keys as for
tune editing). When the sample is playing, a blue vertical bar moves
through the sample showing the part currently playing. There are also
four other vertical markers, a red, a green, and two goldish ones. These
represent the start and end of the marked block, and the repeat markers
respectively. There is also a toggle box which will say either "Marked"
or "All". This affects certain operations, and determines whether an
operation is performed on the whole sample or just on the area between
the start and end marker. To move a marker, either click near it and
drag it about, or use the arrows near its printed value to alter it more
precisely. One thing about these visual markers - they are not plotted
with absolute accuracy, and this is particularly noticeable on short
samples. If in doubt, trust to the numerical values displayed, as these
are precise. When dragging, Select just drags the nearest marker (of
whatever type), Menu drags the nearest repeat marker, and Adjust will
drag either the start or the end of the marked block -whichever is
nearer. To focus on any of these four markers, simply click on the box
containing its name. The scroll offset will then be adjusted so that the
marker is displayed at the centre of the screen (depending on the zoom
factor). Similarly, clicking on the "Zoom:" window with Select will
alter the zoom factor and scroll offset to focus on the marked block.
Clicking on it with Adjust will automatically return the zoom factor
back to 1.
In addition, the following keys may also be used:
Alt - Mute any sound playing
Control - Toggle background lines on and off
Tab - Expand marked area to whole sample
Space - Repeat last note played
In addition to Tab, which expands the marked block to the whole sample,
you may also click with Adjust on either the "Block Start:" or "Length:"
boxes. This has the effect of moving the relevant marker to its extreme
position; the start of block marker to the start of the sample, and the
end of block marker to the end of the sample.
It is probably worth saying a little about the way in which the Repeat
markers work. By clicking on "No Repeat", the repeat markers for the
current sample are returned to their default values (0 and 2); in which
state the sample will not repeat. The repeat markers will also be
ignored when you are playing a marked block as opposed to the whole
sample, as when doing this you could conceivably play an area of the
sample which is outside the bounds of the repeat. There are two values
which affect the repeat - repeat offset and repeat length. In general
terms, when the sample position being played exceeds the end of the
repeat block, it is reset to the beginning, and so on ad infinitum. The
end of the repeat block is actually the repeat offset plus the repeat
length, but this is transparent to the user while using the sample
editor. A repeat length of 2, however, is treated as "repeat to end of
sample", and the end of the repeat block is effectively the end of the
sample. This may account for seemingly strange results when dragging
repeat markers. If this repeat length of 2 is combined with a repeat
offset of 0, there will be no repeat, and this is the default setting.
Any other combination of values will cause a repeat to occur. You may
find some samples whose repeat offset + repeat length actually come to
greater than the total sample length (presumably due to a bad editing
program). If this is the case, then you should really try to alter the
repeat settings so that they lie within the sample, which should avoid
any potential problems though safeguards are built into AP Tracker.
Sample Menus
============
The majority of the actual sample editing functions are to be found on
menus. The 7 boxes starting with "Vol" refer to the menus available (in
effect a menu of menus). Clicking on one of these will alter the
contents of the four boxes below the actual menu headings to the
relevant menu functions. You must then click on one of these four boxes
to actually perform the operation. As mentioned above, certain
operations take the current setting of the "Marked/All" flag into
account. When the pointer is above one of these functions, the word
"Marked" or "All" (depending on the current setting) will flash on and
off. This acts both as a notice to tell you which operations will work
either on the whole sample or just the marked part, and also as a
reminder to set the flag. The functions of these various menus are
explained below.
Vol
This menu is concerned with the volume of the sample. The first thing
you may notice is that the two options on the left are not actually
options at all. Instead, these boxes have been combined into an
oscilloscope-type display. This shows the portion of the sample
currently being displayed, and the distance of the trace from the centre
line is a measure of the volume of the sound. Note that this displays
the contents of the sound buffer itself rather than just the sample
itself, and so its contents will change as the pitch of note being
played varies. If nothing else, this may give you an insight into the
way samples are played, but if not, well, it looks nice! One thing you
can do with this feature, though, is click on it. This stops all sound
playing (effectively doing the same thing as pressing "Alt"), and can
save you resorting to the keyboard when editing with the mouse. The two
"proper" volume options are "Boost" and "Quiescence". These act either
on the whole sample or the marked block and will increase or decrease
its volume respectively. Note that this will have an effect on every
note played with the sample, as the actual sample data itself is being
altered, as opposed to just using a "V" command in the tune where the
existing sample data is played at a different volume.
Fade
The functions on this menu allow you to fade parts of a sample in or
out. The boxes marked "Fade In" and "Fade Out" perform the actual
operations, whereas the two below allow you to set the parameters of the
fade. These two values refer to the two end volumes, and are in the same
format as the numbers used by the "V" (set volume command) when writing
music. Therefore, 255 refers to full (standard) volume, and 0 means
silence. However, due to the logarithmic nature of the volume scale this
does not always give the best results as the resulting sample tends more
towards silence than to full volume - hence the ability to specify the
volumes. Fades between 255 and about 60 or 70 seem to produce the best
results, but you should experiment with this. It does not matter which
order the values are in - the order in which they are used is determined
by whether you click on "Fade In" or "Fade Out", but you should remember
that they are in the same format as the numbers used by the "V" command,
and that the higher number is the louder of the two.
Delete
To carry out any of the four deletion functions, you need to hold down
all three mouse buttons (to prevent triggering them accidentally).
Delete Marked and Unmarked are self-explanatory, and Delete Unused will
delete the part of the sample lying beyond the second repeat marker, as
this is unused when playing anyway. You should, therefore, only use this
when the sample is in its finished state and is not going to need any
more alteration. Delete zeros will remove all trailing zeros (silence)
from the end of the sample, and this should prove to be quite useful.
Merge
The Merge menu contains functions which operate on two sample blocks -
the current one and one specified by the user. This latter sample number
is contained in the box marked "Sample:", and can be altered by clicking
in this box with Select (decrease) or Adjust (increase). This value can
either be displayed in a goldish colour the same as the menu text, or in
a red colour. The significance of this is in the type of sample; red
means that there is an actual sample present in this slot; gold means
that there is not. There are three operations which act on the selected
samples. "Copy to Slot" will make an exact copy of the sample currently
being edited in the selected slot. This will completely overwrite what
was previously there, and so should be used with caution. This is useful
when editing a sample, as it means that (memory permitting) you can
first copy a sample to a blank slot, work on it there, and copy it back
again when you are happy with it. Any mistakes made during processing
will thus not have irreversible effects on the original sample. "Insert
Sample" will insert the selected sample into the current one (again,
memory permitting). The position at which the selected sample is
inserted is determined by the start of block (green) marker. When the
sample has been inserted, the marked block will be around the new
section. This is so that if you are not happy with the result you can
use the "Delete Marked" feature to return the sample to precisely what
it was originally. The final, "Add Samples", allows you to merge the
actual sounds of the two samples together. Again, it takes effect at the
start of block marker, and merges bytes of the selected sample with the
current one until the end of either is reached.
RS
This actually stands for "Resample", as this is what the majority of the
functions in this menu are concerned with. The one which isn't is the
first, "Reverse", which is put here because it really fits in with
nothing else, there was a blank space here, and with a bit of
imagination "RS" could almost stand for "Reverse" I suppose ... Anyway,
forget the logic, it's here anyway. Fairly obviously, it just reverses
all or part of a sample, which produces some strange (and occasionally
useful) results (and, more to the point, is nice and simple to program
unlike "Insert Sample" and certain other functions I could mention).
Resample is a fairly complex function, though has a number of uses. What
is does basically is to "rescale" a sample so that it actually looks the
same (in the sense of the waveform), but in actual fact is a different
length. This means that its effective pitch when played at a certain
note (eg. C-3) has actually changed. One use for this is to reduce the
space taken up by some samples. By sampling the sample down one octave,
its length is halved. By then playing notes an octave higher than usual,
the actual sound will be the same, but the file length will be shorter.
In practice, resampling downwards will always lose some data, but even
going down by more than an octave can (as long the sample was of a
sufficiently high quality to start with) produce acceptable results.
This is especially useful with samples (particularly speech samples)
which are only ever played at one pitch in the tune. Resampling can also
be used to extend the three-octave range of the Tracker music format. By
resampling up or down by one, two, or even three octaves, notes played
on the new samples will be above or below the normal Tracker range
(although loss of sound quality can limit the usefulness of this for
some samples). So much for theory. To actually resample a sample, you
must tell the program something about the final sample. First of all,
play the sample using either the computer's or the on-screen keyboard,
at a certain pitch. The last note played will be displayed in the bottom
left of the screen, and this is one variable which the Resample function
uses. The other variable is another note value, the one displayed in the
bottom left box of the RS menu. This can be altered by clicking on the
arrows next to it with either Select, Menu, or Adjust. As you change
either of these notes, the "Bytes:" value will change telling you how
long the resulting sample will be if you carry out the Resample function
with the current parameters. What these note values mean is best
explained by an example. If the note in the bottom left is "F#3" and
that in the menu box is "C-2", the the resample function will produce a
sample which when played at "C-2" sounds like the original sample played
at "F#3". This to me seemed more intuitive and friendly than
manipulating frequency values directly. As a guide, if the "Bytes:"
value is less than the original sample length, the new sample will sound
higher than the original; if it is greater then the sample will sound
lower. As another guide, if the two notes differ by an octave (eg. D#2
to D#3), the length will alter by a factor of 2. Two octaves different
means a factor of 4, and so on. The Coconizer conversion (see above)
makes use of the fact that this feature exists in order to handle the 8
octave range of this format. An error will be displayed if a resample
operation requested would produce a sample of over 64K in length.
However, this is permitted if the original sample was over 64K to start
with, as this is a slightly different case.
FR
The options on this menu are concerned either with sound filters or the
repeat markers, and while these two things are entirely distinct I had
to put them on the same menu for reasons of space-saving. The top two
options will carry out either a low or a high pass filtering operation
on all or part of the sample. In theory, one emphasises the lower
frequencies of a sample, the other the high ones. This is of particular
use in removing unwanted background noise from certain samples. In
practice, however, the algorithms (especially the high-pass one) are a
bit dodgy, and so it is perhaps better to think of them as just effects
which can be applied to samples, and you are advised to experiment with
them to see what they can do. If you have tried to set the repeat
markers for a sample, you will be aware that this can be very difficult
and the transition from the end of the repeat back to the beginning
seldom sounds smooth without a lot of experimenting. The two repeat scan
functions (one for the repeat offset marker, one for the repeat length)
offer a partial solution to this. They will scan the sample and try to
find suitable positions for the repeat markers, based on what the sample
looks like at the byte level. When scanning for one marker, the other is
fixed, and what the sample is like at that point is taken as the
criterion for the search. If a marker does not move when you click on
scan, no suitable repeat point has been found, and in this case you
should move the other marker a little and try again, or simply scan from
the other marker. You can scan backwards and forwards (by clicking on
the different arrows), and so you can easily return to a previous point
if no better one is found. The repeat scanning does not always produce
perfect results (though occasionally it can), and often the values need
slight manual adjustment, but it should take some of the hard work out
of finding suitable points.
X
Yes, this menu contains the functions which did not fit anywhere else!!
In actual fact, there are only two things it does, as the remaining two
boxes contain parameters for these two functions. "Insert Space" will
insert, at the start of block position, a certain number of zero bytes
(silence). This is particularly useful when creating Synthetic sounds
(see below), but may also have other uses. The number of bytes inserted
is set by the "Bytes:" value below the "Insert Space" option. This can
be altered by clicking on the arrows. Different mouse buttons alter the
value by different amounts, and Shift can be used for larger step sizes.
If the resulting sample (after inserting the zero bytes) would be over
64K in length (the maximum allowed by Tracker) you will be warned of
this and not permitted to insert the bytes. The "Bytes:" value will, in
this case, be changed to the maximum you can insert. The other function
is "Add Echo", and this also uses the stored "Bytes:" value, but this
time as a measure of how far apart the normal sample bytes and the ones
merged with it to produce the echo should be. For speech samples, values
of about 1/7th or 1/8th the length of the sample seem to produce the
best results - but again, experiment. Another setting for the echoing
facility is "Volume:". This determines the volume of the echo. This is a
standard Tracker format volume value, as used by the "V" commands, and
255 signifies full volume (same as the original), 0 silence, and the
rest somewhere in between. Values of about 235 tend to be about right,
but it depends on the particular sample being edited.
Synthetic Sounds
================
This is another major new feature, and allows you to create your own
sounds (not samples, but they are treated as such by the program) for
use as instruments (or just effects) in tunes. Because this is concerned
with samples, the entry point is to be found on the main Sample Editor
screen. The box in the top right hand corner of the screen leads to the
synthesized sound section, and needs all three mouse buttons pressed to
access it. This is because it completely overwrites the current sample
with the synthetic sound used. To save deleting an existing sample, you
can use the "Insert Space" menu option to create a blank one first, and
then use that. The sample must be at least 256 bytes in length, though
should really be at least a few kilobytes.
This section of the program is based upon the "HarmSynth" program
written by David Radford and published by BBC Acorn User. The method of
operation is very similar, and "AP Tracker" can load and save
"HarmSynth" files (just drag to the icon bar icon to load). The Tracker
file format does not, of course, actually support synthetic sounds. All
"AP Tracker" does is to allow you to alter the harmonic and envelope
data which make up a synthetic sound, and then create a "sample" which
can be used like any other. The length of the sample has an effect on
the pitch of the final sound (as it is scaled to fit the sample space
available; cf. the resample function), and so it may sound quite
different than the equivalent file loaded into the proper "HarmSynth"
file. There are also other differences between "HarmSynth" and the
synthetic sounds part of "AP Tracker". Firstly, there is the treatment
of Repeat. "HarmSynth" handles this in a way which is not possible with
Tracker, and so the HarmSynth repeat setting is ignored by AP Tracker.
You can, of course, apply the Repeat Offset and Repeat Length settings
to the resulting sample if you wish (in the Sample Editor) in the usual
way. "HarmSynth" also has Vibrato and Tremolo settings. These too are
ignored by AP Tracker, largely because they are implemented via effects
when playing notes (though only Vibrato is currently implemented)
When you enter the Synthetics section, you will see the current sound
waveform. By default, this is just a simple Sine wave, but if you have
loaded a Harmsynth file you will see that waveform instead. Below this
waveform are the current harmonic values (see later), and to the right
of it are four icons containing "Sine", "Triangle", "SawTooth" and
"Square". You can toggle each of these on and off by clicking on them.
When one of these types of waves is enabled (shown in pink), its
harmonic values will contribute to the final sound. If it is disabled
(shown in grey) it will not, and so setting them all to off will give a
blank waveform. You can alter the harmonics of one of the four types of
waves by clicking on its icon below the main waveform window. The
currently selected one is shown in red, and its name is also displayed.
To actually alter a harmonic, drag one of the bars next to "1st", "2nd",
"3rd" etc. until its value is as desired. As you do this, the percentage
indicator will change, as will the current waveform (unless the wave
whose harmonics you are altering is currently disabled). If you drag
with the Select button (the norm), the pointer will be restricted to the
harmonic you clicked on, and this restriction will be enforced until you
release the button (again, the norm). However, you can also drag with
Adjust. This does not restrict the pointer to one harmonic, and may be
useful for zeroing more than one harmonic (click just to the left of the
bar on one with Adjust and then move the mouse up or down). To test out
a synthetic sound, either use the usual note keys (Z,S,X,D,C etc.), or
click on the keyboard at the bottom right of the screen. You may also
alter either the sample name (in the top left), or the Synthetic name
(top right), the latter being that which will be saved in the
"HarmSynth" file. You may also, by clicking with Adjust in the Synthetic
name box, copy this across to the Sample name.
By now, you should be able to create a vast number of certainly weird
and possibly wonderful sounds. However, you may be wondering what the
"Amplitude Envelope" and "Pitch Envelope" boxes on the right do. The
amplitude (volume) envelope allows you to specify how the volume of the
sound changes throughout the resulting sample. If you return to the
Sample Editor (the box in the top left), you should see that the shape
of the sample follows roughly the shape of the amplitude envelope, and
if you play the sample, you will probably hear it increase and decrease
in volume. To actually alter the amplitude envelope you must click in
the envelope box. The envelope is made up of straight lines joining
control points or nodes. By altering the positions of these nodes, you
can alter the amplitude envelope and hence the sound of the final
sample. If you click in the box with Select, a new node will be created
at the mouse position. Click with Menu to delete a point, and Adjust to
drag an existing one around (though you will only be able to drag it
between its two immediate neighbours). The exceptions to these rules are
the first and last point (those on the extreme right and left). These
must always be present, and cannot be deleted. They can, though, be
dragged up and down to set the start and end volume of the sample. As
you alter these nodes, you should see the values in the upper
information box change. This tells you the current number of nodes, and
the co-ordinates of the last one created or dragged. You may have up to
ten nodes in the amplitude envelope, including the two at the ends. You
can also reset the envelope to its default setting (three points in a
triangular arrangement) by clicking on "Reset".
Below the amplitude envelope is the pitch envelope. Like the amplitude
envelope, this is made up of nodes joined together. These can be
dragged, created and deleted in exactly the same way as for the
amplitude envelope, and the "Reset" button has a corresponding effect.
The obvious difference is that the resulting envelope influences the way
in which the pitch, not the amplitude, changes throughout the sound. The
centre (zero) line is the default, and will cause the whole note to be
at the pitch you play it. Points above this line represent increases in
pitch while those below it mean that the sound will be lower. This
feature is great for sound effects, and, as with virtually every other
aspect of the program, you are advised to experiment with it in order to
see what effects are possible.
A final word on synthetic sounds. Once you return to the actual sample
editor screen, the sound can only be edited as a sample, and so if you
want to alter the harmonic values or the amplitude/ pitch envelopes
again in another session, you must use the "Save Synthetic" option from
the desktop. Having said this, there is no denying that synthetic sounds
sound, well, synthetic, when compared to actual sampled instruments. By
using the sample editing facilities, such as Boost, Fade, Echo, etc. it
is possible to improve the "feel" of such sounds and make them seem less
artificial. Similarly, using them in conjunction with effects like
Arpeggio and Vibrato when writing music will do the same thing. Bear in
mind though, that this only has an effect on the finished sample -
returning to the synthetic sounds section again will nullify any sample
operations performed.
Credits
Firstly, thanks to Matthew Farrow for updates to the PD player module
used by AP Tracker 2, and also for comments on, and suggestions for, the
program. I must also thank Simon Forrest for suggestions for
improvements, writing loads of tunes (currently 9) with the program, and
designing a nice icon for it. Thanks also to David Radford for writing
the "HarmSynth" program (copyright BBC Acorn User), which shows what is
possible with synthetic sounds and introduces some sort of standard into
this field. Thanks too to Karl Hardy for all the nice demos and for
writing in the first place. Credit should also go to I D Griffiths, the
author of a great little PD utility, "!FileSee". This basically performs
a "*Dump" in a desktop window, can handle multiple files, and is great
for figuring out weird file formats.
If you want to write to me for any reason; if you've written a good
piece of music with AP Tracker 2, if you can't because you don't know
how to perform an operation(s), or if you've found any bugs, my address
is as follows:
Andrew Pepperell,
20 Orchard Park,
Grimoldby,
Louth,
Lincs.
LN11 8TN
( During term time, my address is:
Andrew Pepperell,
Churchill College,
Cambridge,
CB3 0DS.
E-Mail: AP10014@hermes.cam.ac.uk )